package com.biz.primus.app.rest.degraded.member;

import com.biz.primus.app.rest.feign.member.MemberFeignClient;
import com.biz.primus.base.global.GlobalParams;
import com.biz.primus.model.member.enums.InvoiceTypes;
import com.biz.primus.model.member.vo.*;
import com.biz.primus.model.member.vo.request.*;
import com.biz.primus.model.member.vo.response.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * member feign client熔断策略,统一以Degraded+{对应feign client类名}来命名
 *
 * @author jun.liu
 * @date 2017/9/19
 */
@Component
@Slf4j
public class DegradedMemberFeignClient implements MemberFeignClient {

    @Override
    public MemberRegisterResponseVo register(MemberRegisterRequestVo reqVo) {
        return null;
    }

    @Override
    public MemberLoginResponseVo login(MemberLoginRequestVo reqVo, Boolean enableAuthToken) {
        return null;
    }

    @Override
    public MemberLoginResponseVo smsCodeLogin(MemberSmsCodeLoginRequestVo reqVo, Boolean enableAuthToken) {
        return null;
    }

    @Override
    public MemberLoginResponseVo autologin(BaseRequestVo req, Boolean enableAuthToken) {
        return null;
    }

    @Override
    public void changePassword(MemberChangePasswordRequestVo reqVo) {
    }

    @Override
    public void resetPassword(MemberResetPasswordRequestVo reqVo) {
    }

    @Override
    public MemberLoginResponseVo getUserInfo(BaseRequestVo reqVo, Boolean enableAuthToken) {
        return null;
    }

    @Override
    public void updatePersonalInfo(UpdateMemberPersonalInfoRequestVo reqVo) {
    }

    @Override
    public void updateAvatar(UpdateMemberAvatarRequestVo reqVo) {
    }

    @Override
    public PageVo findFootprint(BasePageableRequestVo reqVo) {
        return null;
    }

    @Override
    public void recordFootprint(MemberFootprintVo reqVo) {}

    @Override
    public void clearFootprint(BaseRequestVo reqVo) {
    }

    @Override
    public PageVo couponList(MemberCouponRequestVo reqVo) {
        return null;
    }

    @Override
    public MemberCouponCodeVo getCouponDetail(MemberCouponCodeRequestVo reqVo) {
        return null;
    }

    //********************************************
    //               银行卡start
    //********************************************
    @Override
    public MemberBankCardVo getBankcardInfo(GlobalParams reqVo) {
        return null;
    }

    @Override
    public void updateBankcardInfo(MemberBankCardVo reqVo){}
    //********************************************
    //               银行卡end
    //********************************************


    //********************************************
    //               发票start
    //********************************************
    @Override
    public List<MemberInvoiceVo> getUserInvoices(InvoiceTypes invoiceType, Long memberId) {
        return null;
    }

    @Override
    public void saveUserInvoice(MemberInvoiceVo reqVo){}

    @Override
    public void deleteOneInvoice(Long invoiceId){}

    @Override
    public MemberInvoiceVo findOrderInvoiceById(Long invoiceId) {
        return null;
    }
    //********************************************
    //               发票end
    //********************************************

    //********************************************
    //               收藏start
    //********************************************
    @Override
    public void addFavourite(ProductCodeRequestVo reqVo){}

    @Override
    public PageVo favouriteList(BasePageableRequestVo reqVo) {
        return null;
    }

    @Override
    public void clearFavourite(BaseRequestVo reqVo){}

    @Override
    public Long getFavouriteProductTotal(BaseRequestVo reqVo) {
        return null;
    }

    @Override
    public void deleteFavouriteProducts(DeleteFavouriteProductsRequestVo reqVo){}
    //********************************************
    //               收藏end
    //********************************************

    //********************************************
    //               token end
    //********************************************
    @Override
    public String generateNewToken(Long memberId) {
        return null;
    }

    @Override
    public void authenticate(String token, Long memberId) {}

    @Override
    public String refreshToken(String oldToken, Long memberId) {
        return null;
    }

    @Override
    public String findTokenByUserId(Long memberId) {
        return null;
    }
    //********************************************
    //               token end
    //********************************************

    //********************************************
    //               address start
    //********************************************
    @Override
    public void saveOrUpdateLabel(MemberAddressCheckLabelNameRequestVo reqVo) {}

    @Override
    public List<MemberAddressLabelVo> getAllUserLabel(Long memberId) {
        return null;
    }

    @Override
    public List<MemberAddressLabelVo> deleteLabelNew(MemberAddressIdRequestVo reqVo) {
        return null;
    }

    @Override
    public List<MemberAddressVo> saveOrUpdateAddress(MemberAddressVo reqVo) {
        return null;
    }

    @Override
    public List<MemberAddressVo> deleteAddressNew(MemberAddressIdRequestVo reqVo) {
        return null;
    }

    @Override
    public List<MemberAddressVo> getAllAddress(MemberAddressNewRequestVo reqVo) {
        return null;
    }

    @Override
    public MemberAdddressCheckStoreResponseVo checkStore(BaseVo reqVo) {
        return null;
    }

    @Override
    public MemberAddressVo findMemberAddressOfHome(BaseRequestVo reqVo) {
        return null;
    }

    @Override
    public MemberAddressVo findMemberAddressOfCompany(BaseRequestVo reqVo) {
        return null;
    }

    @Override
    public MemberAddressVo findMemberAddressOnMemberIdAndKeyword(BaseRequestVo reqVo, String keyword) {
        return null;
    }

    @Override
    public MemberAddressVo findMemberAddressById(BaseVo reqVo) {
        return null;
    }
    //********************************************
    //               address end
    //********************************************

    //********************************************
    //               notice start
    //********************************************
    @Override
    public List<NoticeVo> getAllNoticeRo(NoticePageRequestVo reqVo) {
        return null;
    }

    @Override
    public List<NoticeVo> getUserRemainNotices(NoticePageRequestVo reqVo) {
        return null;
    }
    //********************************************
    //               notice end
    //********************************************
}
